home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-01-26 | 59.5 KB | 1,387 lines |
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- NNNNAAAAMMMMEEEE
- Geomview - Geomview command language
-
- NNNNOOOOTTTTEEEE
- The material in this manual page also appears in the
- Geomview manual.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- gcl: the Geomview Command Language
- **********************************
-
- Gcl has the syntax of lisp -- i.e. an expression of the form (f a b
- ...) means pass the values of a, b, ... to the function f.
- Gcl is very limited and is by no means an implementation of lisp. It
- is simply a language for expressing commands to be executed in the order
- given, rather than a programming language. It does not support variable
- or function definition.
-
- Gcl is the language that Geomview understands for files that it loads
- as well as for communication with other programs.
- To execute a gcl command interactively, you can bring up the
- *Commands* panel which lets you type in a command; Geomview
- executes the command when you hit the return key. Output from such
- commands is printed to standard output. Alternately, you can invoke
- Geomview as `geomview -c -' which causes it to read gcl commands
- from standard input.
-
- Gcl functions return a value, and you can nest function calls in ways
- which use this returned value. For example
- (f (g a b))
- evaluates `(g a b)' and then evaluates `(f x)' where `x'
- is the result returned by `(g a b)'. Geomview maintains these
- return values internally but does not normally print them out.
- To print out a return value pass it to the `echo' function.
- For example the `geomview-version' function returns a string
- representing the version of Geomview that is running, and
- (echo (geomview-version))
- prints out this string.
-
- Many functions simply return `t' for success or `nil' for
- failure; this is the case if the documentation for the function does not
- indicate otherwise. These are the lisp symbols for true and false,
- respectively. (They correspond to the C variables `Lt' and
- `Lnil' which you are likely to see if you look at the source code
- for Geomview or some of the external modules.)
-
- In the descriptions of the commands below several references are made to
- "OOGL" formats. OOGL is the data description language that Geomview
- uses for describing geometry, cameras, appearances, and other basic
- objects. For details of the OOGL formats, *Note OOGL File Formats::.
- (Or equivalently, see the oogl(5) manual page, distributed with Geomview
- in the file man/cat5/oogl.5.
-
-
-
- Page 1 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- The gcl commands and argument types are listed below. Most
- of the documentation in this section of the manual is available within
- Geomview via the `?' and `??' commands. The command `(?
- COMMAND)' causes Geomview to print out a one-line summary of the
- syntax of COMMAND, and `(?? COMMAND)' prints out an
- explanation of what COMMAND does. You can include the wild-card
- character `*' in COMMAND to print information for a group of
- commands matching a pattern. For example, `(?? *emodule*)' will
- print all information about all commands containing the string
- `emodule'. `(? *)' will print a short list of all commands.
-
- Conventions Used In Describing Argument Types
- =============================================
-
- The following symbols are used to describe argument types
- in the documentation for gcl functions.
-
-
- `APPEARANCE'
- is an OOGL appearance specification.
-
- `CAM-ID'
- is an ID that refers to a camera.
-
- `CAMERA'
- is an OOGL camera specification.
-
- `GEOM-ID'
- is an ID that refers to a geometry.
-
- `GEOMETRY'
- is an OOGL geometry specification.
-
- `ID'
- is a string which names a geometry or camera. Besides
- those you create, valid ones are:
-
-
- ``World, world, worldgeom, g0''
- the collection of all geom's
-
- `target'
- selected target object (cam or geom)
-
- `center'
- selected center-of-motion object
-
- `targetcam'
- last selected target camera
-
- `targetgeom'
- last selected target geom
-
-
-
- Page 2 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `focus'
- camera where cursor is (or most recently was)
-
- `allgeoms'
- all geom objects
-
- `allcams'
- all cameras
-
- ``default, defaultcam, prototype''
- future cameras inherit default's settings
-
-
- The following IDs are used to name coordinate systems,
- e.g. in `pick' and `write' commands:
-
-
- ``World, world, worldgeom, g0''
- the world, within which all other geoms live.
-
- `universe '
- the universe, in which the World, lights and cameras live. Cameras'
- world2cam transforms might better be called universe2cam, etc.
-
- `self'
- "this Geomview object". Transform from an object to `self' is the
- identity; writing its geometry gives the object itself with no
- enclosing transform; picked points appear in the object's coordinates.
-
- `primitive'
- (for `pick' only) Picked points appear in the coordinate system of the
- lowest-level OOGL primitive.
-
-
- A name is also an acceptable id. Given names are made unique by
- appending numbers if necessary (i.e. `foo<2>'). Every geom is also
- named g[n] and every camera is also named c[n] (`g0' is always the
- worldgeom): this name is used as a prefix to keyboard commands and can
- also be used as a gcl id. Numbers are reused after an
- object is deleted. Both names are shown in the Object browser.
-
- `STATEMENT'
- represents a function call. Function calls have the form `(func arg1
- arg2 ... )', where `func' is the name of the function and `arg1',
- `arg2', ... are the arguments.
-
- `TRANSFORM'
- is an OOGL 4x4 transformation matrix.
-
- `WINDOW'
- is an OOGL winddow specification.
-
-
-
-
- Page 3 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- Gcl Reference Guide
- ===================
-
-
- `! is a synonym for `shell''
-
- `(< EXPR1 EXPR2)'
- Returns t if EXPR1 is less than EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
-
- `(= EXPR1 EXPR2)'
- Returns t if EXPR1 is equal to EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
-
- `(> EXPR1 EXPR2)'
- Returns t if EXPR1 is greater than EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
-
- `(? [command])'
- Gives one-line usage summary for `command'.
- Command may include `*'s as wildcards; see also `??'
- One-line command help; lists names only if multiple commands match.
- ? is a synonym for `help'
-
- `(?? command) `command' may include `*' wildcards'
- Prints more info than `(? command)'. ?? is a synonym
- for `morehelp'.
-
- `| is a synonym for `emodule-run'.'
-
- `(all geometry) returns a list of names of all geometry objects.'
- Use e.g. `(echo (all geometry))' to print such a list.
- `(all camera) returns a list of names of all cameras.'
- `(all emodule defined) returns a list of all defined external modules.'
- `(all emodule running) returns a list of all running external modules.'
-
- `(ap-override [on|off])'
- Selects whether appearance controls should override objects' own
- settings. On by default. With no arguments, returns current setting.
-
- `(backcolor CAM-ID R G B)'
- Set the background color of CAM-ID; R G B are numbers
- between 0 and 1.
-
- `(background-image CAM-ID [FILENAME])'
- Use the given image as the background of camera CAM-ID (which must be a
- real camera, not `default' or `allcams'). Centers the image on
- the window area. Works only with GL and OpenGL graphics.
- Use "" for filename to remove background. With no filename argument,
- returns name of that window's current background image, or "".
- Any file type acceptable as a texture is allowed, e.g. .ppm.gz, .sgi, etc.
-
-
-
-
- Page 4 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(bbox-color GEOM-ID R G B)'
- Set the bounding-box color of GEOM-ID; R G B are numbers
- between 0 and 1.
-
- `(bbox-draw GEOM-ID [yes|no])'
- Say whether GEOM-ID's bounding-box should be drawn; `yes' if omitted.
-
- `(camera CAM-ID [CAMERA])'
- Specify data for CAM-ID; CAMERA is a string giving an OOGL
- camera specification. If no camera CAM-ID exists,
- it is created; in this case, the second argument is optional,
- and if omitted, a default camera is used. See also: new-camera.
-
- `(camera-draw CAM-ID [yes|no])'
- Say whether or not cameras should be drawn in CAM-ID; `yes' if omitted.
-
- `(camera-prop { geometry object } [projective])'
- Specify the object to be shown when drawing other cameras.
- By default, this object is drawn with its origin at the camera,
- and with the camera looking toward the object's -Z axis.
- With the `projective' keyword, the camera's viewing projection is
- also applied to the object; this places the object's Z=-1 and Z=+1 at
- near and far clipping planes, with the viewing area -1<={X,Y}<=+1.
- Example: (camera-prop { < cube } projective)
-
- `(camera-reset CAM-ID)'
- Reset CAM-ID to its default value.
-
- `(car LIST)'
- returns the first element of LIST.
-
- `(cdr LIST)'
- returns the list obtained by removing the first element of LIST.
-
- `(clock)'
- Returns the current time, in seconds, as shown by this stream's clock.
- See also set-clock and sleep-until.
-
- `(command INFILE [OUTFILE])'
- Read commands from INFILE; send corresponding responses
- (e.g. anything written to filename `-') to OUTFILE, stdout
- by default.
-
- `(copy [ID] [name])'
- Copies an object or camera. If ID is not specified, it
- is assumed to be targetgeom. If name is not specified, it
- is assumed to be the same as the name of ID.
-
- `(cursor-still [INT])'
- Sets the number of microseconds for which the cursor must not
- move to register as holding still. If INT is not specified,
- the value will be reset to the default.
-
-
-
- Page 5 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(cursor-twitch [INT])'
- Sets the distance which the cursor must not move (in x or
- y) to register as holding still. If INT is not specified,
- the value will be reset to the default.
-
- `(delete ID)'
- Delete object or camera ID.
-
- `(dice GEOM-ID N)'
- Dice any Bezier patches within GEOM-ID into NxN meshes; default 10.
- See also the appearance attribute `dice', which makes this command
- obsolete.
-
- `(dimension [N])'
- Sets or reads the space dimension for N-dimensional viewing.
- (Since calculations are done using homogeneous coordinates,
- this means matrices are (N+1)x(N+1).)
- With no arguments, returns the current dimension, or 0 if
- N-dimensional viewing has not been enabled.
-
- `(dither CAM-ID {on|off|toggle})'
- Turn dithering on or off in that camera.
-
- `(draw CAM-ID)'
- Draw the view in CAM-ID, if it needs redrawing. See also `redraw'.
-
- `(echo ...)'
- Write the given data to the special file `-'. Strings are written
- literally; lisp expressions are evaluated and their values written.
- If received from an external program, `echo' sends to the program's
- input. Otherwise writes to geomview's own standard output
- (typically the terminal).
-
- `(emodule-clear)'
- Clears the geomview application (external module) browser.
-
- `(emodule-define NAME SHELL-COMMAND ...)'
- Define an external module called NAME, which then appears in the
- external-module browser. The SHELL-COMMAND string
- is a UNIX shell command which invokes the module.
- See emodule-run for discussion of external modules.
-
- `(emodule-defined `modulename')'
- If the given external-module name is known, returns the name of
- the program invoked when it's run as a quoted string; otherwise
- returns nil. `(echo (emodule-defined `name'))' prints the string.
-
- `(emodule-isrunning NAME)'
- Returns Lt if the emodule NAME is running, or Lnil
- if it is not running. NAME is searched for in the
- names as they appear in the browser and in the shell commands
- used to execute the external modules (not including arguments).
-
-
-
- Page 6 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(emodule-path)'
- Returns the current search path for external modules.
- Note: to actually see the value returned by this function
- you should wrap it in a call to echo: (echo (emodule-path)).
- See also set-emodule-path.
-
- `(emodule-run SHELL-COMMAND ARGS...)'
- Runs the given SHELL-COMMAND (a string containing a UNIX shell
- command) as an external module. The module's standard output
- is taken as geomview commands; responses (written to filename
- `-') are sent to the module's standard input. The shell
- command is interpreted by /bin/sh, so e.g. I/O redirection may
- be used; a program which prompts the user for input from the
- terminal could be run with:
- (emodule-run yourprogram <&2)
- If not already set, the environment variable $MACHTYPE is set
- to the name of the machine type. Input and output
- connections to geomview are dropped when the shell command
- terminates. Clicking on a running program's module-browser entry
- sends the signal SIGHUP to the program. For this to work, programs
- should avoid running in the background; those using FORMS or GL
- should call foreground() before the first FORMS or winopen() call.
- See also emodule-define, emodule-start.
-
- `(emodule-sort)'
- Sorts the modules in the application browser alphabetically.
-
- `(emodule-start NAME)'
- Starts the external module NAME, defined by emodule-define.
- Equivalent to clicking on the corresponding module-browser entry.
-
- `(emodule-transmit NAME LIST)'
- Places LIST into external module NAME's standard input. NAME is
- searched for in the names of the modules as they appear in the
- External Modules browser and then in the shell commands used to
- execute the external modules. Does nothing if modname is not
- running.
-
- `(escale GEOM-ID FACTOR)'
- Same as scale but multiplies by exp(scale). Obsolete.
-
- `(event-keys {on|off})'
- Turn keyboard events on or off to enable/disable keyboard shortcuts.
-
- `(event-mode MODESTRING)'
- Set the mouse event (motion) mode; MODESTRING should be one of
- the strings that appears in the motion mode browser (including
- the keyboard shortcut, e.g. `[r] Rotate').
-
- `(event-pick {on|off})'
- Turn picking on or off.
-
-
-
-
- Page 7 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(evert GEOM-ID [yes|no])'
- Set the normal eversion state of GEOM-ID. If the second argument
- is omitted, toggle the eversion state.
-
- `(exit)'
- Terminates geomview.
-
- `(ezoom GEOM-ID FACTOR)'
- Same as zoom but multiplies by exp(zoom). Obsolete.
-
- `(freeze CAM-ID)'
- Freeze CAM-ID; drawing in this camera's window is turned off
- until it is explicitly redrawn with `(redraw CAM-ID)', after
- which time drawing resumes as normal.
-
- `(geometry GEOM-ID [GEOMETRY])'
- Specify the geometry for GEOM-ID. GEOMETRY is a string
- giving an OOGL geometry specification. If no object
- called GEOM-ID exists, it is created; in this case the
- GEOMETRY argument is optional, and if omitted, the new
- object GEOM-ID is given an empty geometry.
-
- `(geomview-version)'
- Returns a string representing the version of geomview that is
- running.
-
- `(hdefine `geometry'|`camera'|`transform'|`window' name value)'
- Sets the value of a handle of a given type.
- (hdefine <type> <name> <value>)
- is generally equivalent to
- (read <type> { define <name> <value> })
- except that the assignment is done when hdefine is executed,
- (possibly not at all if inside a conditional statement),
- while the `read ... define' performs assignment as soon as the
- text is read.
-
-
- `(help [command])'
- Command may include `*'s as wildcards; see also `??'
- One-line command help; lists names only if multiple commands match.
-
- `(hmodel CAMID {virtual|projective|conformal})'
- Set the model used to display geometry in
- this camera; see also `space'.
-
- `(hsphere-draw CAMID [yes|no])'
- Say whether to draw a unit sphere: the sphere at infinity in
- hyperbolic space, and a reference sphere in Euclidean and spherical
- spaces. If the second argument is omitted, `yes' is assumed.
-
- `(if TEST EXPR1 [EXPR2])'
- Evaluates TEST; if TEST returns a non-nil value, returns the
-
-
-
- Page 8 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- value of EXPR1. If TEST returns nil, returns the value of
- EXPR2 if EXPR2 is present, otherwise returns nil.
-
- `(inhibit-warning STRING)'
- Inhibit warning inhbits geomview from displaying a
- particular warning message determined by STRING.
- At present there are no warning messages that this
- applies to, so this command is rather useless.
-
- `(input-translator "#prefix_string" "Bourne-shell-command")'
- Defines an external translation program for special input types.
- When asked to read a file which begins with the specified string,
- geomview invokes that program with standard input coming from the given file.
- The program is expected to emit OOGL geometric data to its standard output.
- In this implementation, only prefixes beginning with # are recognized.
- Useful as in
- (input-translator "#VRML" "vrml2oogl")
-
- `(interest (COMMAND [args]))'
-
- Allows you to express interest in a command. When geomview
- executes that command in the future it will echo it to the
- communication pool from which the interest command came.
- COMMAND can be any command. Args specify restrictions on the
- values of the arguments; if args are present in the interest
- command, geomview will only echo calls to the command in which
- the arguments match those given in the interest command. Two
- special argument values may appear in the argument list. `*'
- matches any value. `nil' matches any value but supresses the
- reporting of that value; its value is reported as `nil'.
-
- The purpose of the interest command is to allow external
- modules to find out about things happening inside geomview.
- For example, a module interested in knowing when a geom called
- `foo' is deleted could say `(interest (delete foo))' and would
- receive the string `(delete foo)' when foo is deleted.
-
- Picking is a special case of this. For most modules
- interested in pick events the command `(interest (pick
- world))' is sufficient. This causes geomview to send a string
- of the form `(pick world ...)' every time a pick event (right
- mouse double click). See the `pick' command for details.
-
- `(lines-closer CAM-ID DIST)'
- Draw lines (including edges) closer to the camera than polygons
- by DIST / 10^5 of the Z-buffer range. DIST = 3.0 by default.
- If DIST is too small, a line lying on a surface may be
- dotted or invisible, depending on the viewpoint.
- If DIST is too large, lines may appear in front of surfaces
- that they actually lie behind. Good values for DIST vary with
- the scene, viewpoint, and distance between near and far clipping
- planes. This feature is a kludge, but can be helpful.
-
-
-
- Page 9 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(load filename [command|geometry|camera])'
- Loads the given file into geomview. The optional second argument
- specifies the type of data it contains, which may be `command'
- (geomview commands), `geometry' (OOGL geometric data), or
- `camera' (OOGL camera definition). If omitted, attempts to guess
- about the file's contents.
- Loading geometric data creates a new visible object; loading a camera
- opens a new window; loading a command file executes those commands.
-
-
- `(load-path)'
- Returns the current search path for command, geometry, etc. files.
- Note: to actually see the value returned by this function
- you should wrap it in a call to echo: (echo (load-path)).
- See also set-load-path.
-
- `(look [objectID] [cameraID])'
- Rotates the named camera to point toward the center of the
- bounding box of the named object (or the origin in hyperbolic or
- spherical space). In Euclidean space, moves the camera
- forward or backward until the object appears as large
- as possible while still being entirely visible. Equivalent to
- progn (
- (look-toward [objectID] [cameraID] {center | origin})
- [(look-encompass [objectID] [cameraID])]
- )
- If objectID is not specified, it is assumed to be World. If
- cameraID is not specified, it is assumed to be targetcam.
-
- `(look-encompass [objectID] [cameraID])'
- Moves cameraID backwards or forwards until its field of view
- surrounds objectID. This routine works only in Euclidean space.
- If objectID is not specified, it is assumed to be the world.
- If cameraID is not specified, it is assumed to be the targetcam.
- See also (look-encompass-size).
-
- `(look-encompass-size [view-fraction clip-ratio near-margin far-margin])'
- Sets/returns parameters used by (look-encompass).
- view-fraction is the portion of the camera window filled by the object,
- clip-ratio is the max allowed ratio of near-to-far clipping planes.
- The near clipping plane is 1/near-margin times closer than the near
- edge of the object, and the far clipping plane is far-margin times
- further away. Returns the list of current values.
- Defaults: .75 100 0.1 4.0
-
-
- `(look-recenter [objectID] [cameraID])'
- Translates and rotates the camera so that it is looking in the
- -z direction (in objectID's coordinate system) at the center of
- objectID's bounding box (or the origin of the coordinate system
- in non-Eudlidean space). In Euclidean space, the camera is also
- moved as close as possible to the object while allowing the
-
-
-
- Page 10 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- entire object to be visible. Also makes sure that the y-axes of
- objectID and cameraID are parallel.
-
- `(look-toward [objectID] [cameraID] [origin | center])'
- Rotates the named camera to point toward the origin of the
- object's coordinate system, or the center of the object's
- bounding box (in non-Euclidean space, the origin will be used
- automatically). Default objectID is the world, default camera
- is targetcam, default location to point towards is the center
- of the bounding box.
-
- `(merge {window|camera} CAM-ID { WINDOW or CAMERA ... } )'
- Modify the given window or camera, changing just those properties
- specified in the last argument. E.g.
- (merge camera `Camera' { far 20 })
- sets Camera's far clipping plane to 20 while leaving
- other attributes untouched.
-
- `(merge-ap GEOM-ID APPEARANCE)'
- Merge in some appearance characteristics to GEOM-ID.
- Appearance parameters include surface and line color, shading
- style, line width, and lighting.
-
- `merge-base-ap is a synonym for merge-baseap.'
-
- `(merge-baseap APPEARANCE)'
- Merge in some appearance characteristics to the base default
- appearance (applied to every geom before its own apperance).
- Lighting is typically included in the base appearance.
-
- `(morehelp command)'
- `command' may include `*' wildcards.
- Prints more info than `(help command)'.
-
- `(name-object ID NAME)'
- Assign a new NAME (a string) to ID. A number is appended if
- that name is in use (for example, `foo' -> `foo<2>'). The new
- name, possibly with number appended, may be used as object's
- id thereafter.
-
- `(ND-axes CAMID [CLUSTERNAME [Xindex Yindex Zindex]])'
- In our model for N-D viewing (enabled by (dimension)), objects in
- N-space are viewed by N-dimensional *camera clusters*.
- Each real camera window belongs to some cluster, and shows &
- manipulates a 3-D axis-aligned projected subspace of the N-space seen
- by its cluster. Moving one camera in a cluster affects its siblings.
-
- The ND-axes command configures all this. It specifies a camera's
- cluster membership, and the set of N-space axes which become the
- 3-D camera's X, Y, and Z axes. Axes are specified by their indices,
- from 0 to N-1 for an N-dimensional space. Cluster CLUSTERNAME is
- implicitly created if not previously known.
-
-
-
- Page 11 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- To read a camera's configuration, use `(echo (ND-axes CAMID))'.
-
-
- `(ND-color CAMID'
- [ (( [ID] (x0 x1 x2 ... xn) v r g b a v r g b a ... )
- ((x0 ... xn) v r g b a v r g b a ...) ...)] )
- Specifies a function, applied to each N-D vertex, which determines the
- colors of N-dimensional objects as shown in camera CAMID.
- Each coloring function is defined by a vector (in ID's coordinate system)
- [x0 x1 ... xn] and by a sequence of value (v)/color(r g b a) tuples,
- ordered by increasing v. The inner product v = P.[x] is linearly
- interpolated in this table to give a color.
- If ID is omitted, the (xi) vector is assumed in universe coordinates.
- The ND-color command specifies a list of such functions; each vertex
- is colored by their sum (so e.g. green intensity could indicate
- projection along one axis while red indicated another.
- An empty list, as in (ND-color CAMID ()), suppresses coloring.
- With no second argument, (ND-color CAMID) returns that camera's
- color-function list.
- Even when coloring is enabled, objects tagged with the `keepcolor'
- appearance attribute are shown in their natural colors.
-
-
- `(ND-xform OBJID [ntransform { idim odim ... }])'
- Sets or returns the N-D transform of the given object.
- In dimension N, this is an (N+1)x(N+1) matrix.
- Note that all cameras in a camera-cluster have the same N-D transform.
-
-
- `(ND-xform-get ID [from-ID])'
- Returns the N-D transform of the given object in the coordinate system
- of from-ID (default `universe'), in the sense
- <point-in-ID-coords> * Transform = <point-in-from-ID-coords>
-
-
- `(new-alien name [GEOMETRY])'
- Create a new alien (geom not in the world) with the given name
- (a string). GEOMETRY is a string giving an OOGL geometry
- specification. If GEOMETRY is omitted, the new alien
- is given an empty geometry. If an object with that name
- already exists, the new alien is given a unique name. The
- light beams that are used to move around the lights are an
- example of aliens. They're drawn but are not controllable the
- way ordinary objects are: they don't appear in the object
- browser and the user can't move them with the normal motion
- modes.
-
- `(new-camera name [CAMERA])'
- Create a new camera with the given name (a string). If a
- camera with that name already exists, the new object is given
- a unique name. If CAMERA is omitted a default camera is used.
-
-
-
-
- Page 12 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(new-center [id])'
- Stop id, then set id's transform to the identity. Default id
- is target. Also, if the id is a camera, calls
- (look-recenter World id). The main function of the call to
- (look-recenter) is to place the camera so that it is pointing
- parallel to the z axis toward the center of the world.
-
- `(new-geometry name [GEOMETRY])'
- Create a new geom with the given name (a string). GEOMETRY is
- a string giving an OOGL geometry specification. If
- GEOMETRY is omitted, the new object is given an empty geometry.
- If an object with that name already exists, the new object is
- given a unique name.
-
- `(new-reset)'
- Equivalent to (progn (new-center ALLGEOMS)(new-center ALLCAMS))
-
- `(NeXT)'
- Returns t if running on a NeXT, nil if not
-
- `(normalization GEOM-ID {each|none|all|keep})'
- Set the normalization status of GEOM-ID.
- `none'
- suppresses all normalization.
- `each'
- normalizes the object's bounding box to fit into the unit
- sphere, with the center of its bounding box translated
- to the origin. The box is scaled such that its long diagonal,
- sqrt((xmax-xmin)^2 + (ymax-ymin)^2 + (zmax-zmin)^2), is 2.
- `all'
- resembles `each', except when an object is changing
- (e.g. when its geometry is being changed by an external program).
- Then, `each' tightly fits the bounding box around the
- object whenever it changes and normalizes accordingly,
- while `all' normalizes the union of all variants of the object
- and normalizes accordingly.
- `keep'
- leaves the current normalization transform unchanged
- when the object changes. It may be useful to apply `each' or
- `all' normalization apply to the first version of a changing
- object to bring it in view, then switch to `keep'.
-
- `(pick COORDSYS GEOMID G V E F P VI EI FI)'
- The pick command is executed internally in response to pick
- events (right mouse double click).
-
- COORDSYS = coordinate system in which coordinates of the following
- arguments are specified. This can be:
- world: world coord sys
- self: coord sys of the picked geom (GEOMID)
- primitive: coord sys of the actual primitive within
- the picked geom where the pick occurred.
-
-
-
- Page 13 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- GEOMID = id of picked geom
- G = picked point (actual intersection of pick ray with object)
- V = picked vertex, if any
- E = picked edge, if any
- F = picked face
- P = path to picked primitive [0 or more]
- VI = index of picked vertex in primitive
- EI = list of indices of endpoints of picked edge, if any
- FI = index of picked face
-
- External modules can find out about pick events by registering
- interest in calls to `pick' via the `interest' command.
-
- `(pick-invisible [yes|no])'
- Selects whether picks should be sensitive to objects whose appearance
- makes them invisible; default yes.
- With no arguments, returns current status.
-
- `(pickable GEOM-ID {yes|no})'
- Say whether or not GEOM-ID is included in the pool of objects
- that could be returned from the pick command.
-
- `(position objectID otherID)'
- Set the transform of objectID to that of otherID.
-
- `(position-at objectID otherID [center | origin])'
- Translate objectID to the center of the bounding box or the
- origin of the coordinate system of otherID (parallel translation).
- Default is center.
-
- `(position-toward objectID otherID [center | origin])'
- Rotate objectID so that the center of the bounding box
- or the origin of the coordinate system of the otherID
- lies on the positive z-axis of the first object. Default is
- the center of the bounding box.
-
- `(progn STATEMENT [ ... ])'
- evaluates each STATEMENT in order and returns the value of the
- last one. Use progn to group a collection of commands together,
- forcing them to be treated as a single command.
-
- `quit is a synonym for `exit''
-
- `(quote EXPR)'
- returns the symbolic lisp expression EXPR without evaluating it.
-
- `(rawevent dev val x y t)'
- Enter the specified raw event into the event queue. The
- arguments directly specify the members of the event structure
- used internally by geomview. This is the lowest level event
- handler and is not intended for general use.
-
-
-
-
- Page 14 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(rawpick CAMID X Y)'
- Process a pick event in camera CAMID at location (X,Y) given in
- integer pixel coordinates. This is a low-level procedure not
- intended for external use.
-
- `(read {geometry|camera|transform|command} {GEOMETRY or CAMERA or ...})'
- Read and interpret the text in ... as containing the
- given type of data. Useful for defining objects using OOGL
- reference syntax, e.g.
-
- (geometry thing { INST transform : T geom : fred })
- (read geometry { define fred QUAD 1 0 0 0 1 0 0 0 1 1 0 0 })
- (read transform { define T <myfile})
-
- `(real-id ID)'
- Returns a string canonically identifying the given ID,
- or `nil' if the object does not exist. Examples:
- (if (real-id fred) (delete fred))
- deletes `fred' if it exists but reports no error if it doesn't, and
- (if (= (real-id targetgeom) (real-id World)) () (delete targetgeom))
- deletes `targetgeom' if it is different from the World.
-
-
- `(redraw CAM-ID)'
- States that the view in CAM-ID should be redrawn on the
- next pass through the main loop or the next invocation of `draw'.
-
- `(regtable) --- shows the registry table'
-
- `(rehash-emodule-path)'
- Rebuilds the application (external module) browser by reading
- all .geomview-* files in all directories on the emodule-path.
- Primarily intended for internal use; any applications defined
- by (emodule-define ...) commands outside of the .geomview-*
- files on the emodule-path will be lost. Does not sort the
- entries in the brower; see (emodule-sort) for that.
-
- `(replace-geometry GEOM-ID PART-SPECIFICATION GEOMETRY)'
- Replace a part of the geometry for GEOM-ID.
-
- `(rib-display [frame|tiff] FILEPREFIX)'
- Set Renderman display to framebuffer (popup screen window) or a
- TIFF format disk file. FILEPREFIX is used to construct
- names of the form `prefixNNNN.suffix'. (i.e. foo0000.rib)
- The number is incremented on every call to `rib-snapshot' and
- reset to 0000 when `rib-display' is called. TIFF files are given
- the same prefix and number as the RIB file (i.e. foo0004.rib
- generates foo0004.tiff). The default FILEPREFIX is `geom' and
- the default format is TIFF. (Note that geomview just generates a
- RIB file, which must then be rendered.)
-
- `(rib-snapshot CAM-ID [filename])'
-
-
-
- Page 15 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- Write Renderman snapshot (in RIB format) of CAM-ID to <filename>.
- If no filename specified, see `rib-display' for explanation of
- the filename used.
-
- `(scale GEOM-ID FACTOR [FACTORY FACTORZ])'
- Scale GEOM-ID, multiplying its size by FACTOR. The factors
- should be positive numbers. If FACTORY and FACTORZ are
- present and non-zero, the object is scaled by FACTOR in x, by
- FACTORY in y, and by FACTORZ in z. If only FACTOR is present,
- the object is scaled by FACTOR in x, y, and z. Scaling only
- really makes sense in Euclidean space. Mouse-driven scaling in
- other spaces is not allowed; the scale command may be issued
- in other spaces but should be used with caution because it may
- cause the data to extend beyond the limits of the space.
-
- `(scene CAM-ID [GEOMETRY])'
- Make CAM-ID look at GEOMETRY instead of at the universe.
-
- `(set-clock TIME)'
- Adjusts the clock for this command stream to read TIME (in seconds)
- as of the moment the command is received. See also sleep-until, clock.
-
- `(set-conformal-refine CMX [N [SHOWEDGES]])'
- Sets the parameters for the refinement algorithm used in drawing
- in the conformal model. CMX is the cosine of the maximum angle
- an edge can bend before it is refined. Its value should be between
- -1 and 1; the default is 0.95; decreasing its value will cause less
- refinement. N is the maximum number of iterations of refining;
- the default is 6. SHOWEDGES, which should be `no' or `yes',
- determines whether interior edges in the refinement are drawn.
-
- `(set-emodule-path (PATH1 ... PATHN))'
- Sets the search path for external modules. The PATHi should
- be pathnames of directories containing, for each module, the
- module's executable file and a .geomview-<modulename> file
- which contains an (emodule-define ...) command for that
- module. This command implicitly calls (rehash-emodule-path)
- to rebuild the application brower from the new path setting.
- The special directory name `+' is replaced by the existing path,
- so e.g. (set-emodule-path (mydir +)) prepends mydir to the path.
-
- `(set-load-path (PATH1 ... PATHN))'
- Sets search path for command, geometry, etc. files. The PATHi
- are strings giving the pathnames of directories to be searched.
- The special directory name `+' is replaced by the existing path,
- so e.g. (set-load-path (mydir +)) prepends mydir to the path.
-
- `(set-motionscale X)'
- Set the motion scale factor to X (default value 0.5). These
- commands scale their motion by an amount which depends on the
- distance from the frame to the center and on the size of the
- frame. Specifically, they scale by
-
-
-
- Page 16 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- dist + scaleof(frame) * motionscale
- where dist is the distance from the center to the frame and
- motionscale is the motion scale factor set by this function.
- Scaleof(frame) measures the size of the frame object.
-
- `(setenv name string) sets the environment variable `name' to the value'
-
- STRING;
- the name is visible to geomview (as in pathnames containing `$name')
- and to processes it creates, e.g. external modules.
-
- `(sgi)'
- Returns t if running on an sgi machine, nil if not
-
- `(shell SHELL-COMMAND)'
- Execute the given UNIX SHELL-COMMAND using /bin/sh. Geomview
- waits for it to complete and will be unresponsive until it does.
- A synonym is `!'.
-
- `(sleep-for TIME)'
- Suspend reading commands from this stream for TIME seconds.
- Commands already read will still be executed; `sleep-for' inside
- `progn' won't delay execution of the rest of the progn's contents.
-
- `(sleep-until TIME)'
- Suspend reading commands from this stream until TIME (in seconds).
- Commands already read will still be executed; `sleep-until' inside
- `progn' won't delay execution of the rest of the progn's contents.
- Time is measured according to this stream's clock, as set by
- `set-clock'; if never set, the first sleep-until sets it to 0
- (so initially (sleep-until TIME) is the same as (sleep-for TIME)).
- Returns the number of seconds until TIME.
-
- `(snapshot CAM-ID FILENAME [FORMAT [XSIZE [YSIZE]]])'
- Save a snapshot of CAM-ID in the FILENAME (a string). The
- FORMAT argument is optional; it may be `ppmscreen',
- `sgi', `ps', or `ppm'. A `ppmscreen' snapshot is created by reading
- the image directly from the given window; the window is popped above
- other windows and redrawn first, then its contents are written as a
- PPM format image. With `ps', dumps a Postscript picture representing
- the view from that window; hidden-surface removal might be incorrect.
- With `ppm', dumps a PPM-format image produced by geomview's internal
- software renderer; this may be of arbitrary size. If the FILENAME
- argument begins with the vertical bar `|', it's interpreted as a
- /bin/sh command to which the PPM or PS data should be piped.
- Optional XSIZE and YSIZE values are relevant only for `ppm' format,
- and render to a window of that size (or scaled to that size,
- with aspect fixed, if only XSIZE is given)
-
- `(soft-shader CAM-ID {on|off|toggle})'
- Select whether to use software or hardware shading in that camera.
-
-
-
-
- Page 17 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- `(space {euclidean|hyperbolic|spherical})'
- Set the space associated with the world.
-
- `(stereowin CAM-ID [no|horizontal|vertical|colored] [gapsize])'
- Configure CAM-ID as a stereo window.
- no: entire window is a single pane, stereo disabled
- horizontal: split left/right: left is stereo eye#0, right is #1.
- vertical: split top/bottom: bottom is eye#0, top is #1.
- colored: panes overlap, red is stereo eye#0, cyan is #1.
-
- A gap of `gapsize' pixels is left between subwindows;
- if omitted, subwindows are adjacent.
- If both layout and gapsize are omitted, e.g. (stereowin CAM-ID),
- returns current settings as a `(stereowin ...)' command list.
- This command doesn't set stereo projection; use `merge camera' or
- `camera' to set the stereyes transforms, and `merge window' or
- `window' to set the pixel aspect ratio & window position if needed.
-
- `(time-interests deltatime initial prefix [suffix])'
- Indicates that all interest-related messages, when separated by at
- least `deltatime' seconds of real time, should be preceded by
- the string `prefix' and followed by `suffix'; the first message
- is preceded by `initial'. All three are printf format strings,
- whose argument is the current clock time (in seconds) on that stream.
- A `deltatime' of zero timestamps every message. Typical usage:
- (time-interests .1 `(set-clock %g)' `(sleep-until %g)') or
- (time-interests .1 `(set-clock %g)'
- "(sleep-until %g) (progn (set-clock %g)" ")") or
- (time-interests .1 "(set-clock %g)"
- "(if (> 0 (sleep-until %g)) (" "))".
-
- `(transform objectID centerID frameID [rotate|translate|translate-scaled|scale] x y z [dt] [`smooth'])'
- Apply a motion (rotation, translation, scaling) to object `objectID';
- that is, construct and concatenate a transformation matrix with
- objectID's transform The 3 IDs involved are the object
- that moves, the center of motion, and the frame of reference
- in which to apply the motion. The center is easiest understood
- for rotations: if centerID is the same as objectID then it will
- spin around its own axes; otherwise the moving object will orbit
- the center object. Normally frameID, in whose coordinate system
- the (mouse) motions are interpreted, is `focus', the current camera.
- Translations can be scaled proportional to the
- distance between the target and the center. Support for
- spherical and hyperbolic as well as Euclidean space is
- built-in: use the `space' command to change spaces. With type
- `rotate' x, y, and z are floats specifying angles in RADIANS.
- For types `translate' and `translate-scaled' x, y, and z are
- floats specifying distances in the coordinate system of the
- center object. The optional `dt' field allows a simple form of
- animation; if present, the object moves by just that amount during
- approximately `dt' seconds, then stops. If present and followed by
- the `smooth' keyword, the motion is animated with a 3t^2-2t^3
-
-
-
- Page 18 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- function, so as to start and stop smoothly. If absent, the motion is
- applied immediately.
-
- `(transform-incr objectID centerID frameID [rotate|translate|translate-scaled|scale] x y z [dt])'
- Apply continuing motion: construct a transformation matrix and
- concatenate it with the current transform of objectID every
- refresh (sets objectID's incremental transform). Same syntax
- as transform. If optional `dt' argument is present,
- the object is moved at each time step such that its average motion
- equals one instance of the motion per `dt' seconds. E.g.
- (transform-incr World World World rotate 6.28318 0 0 10.0)
- rotates the World about its X axis at 1 turn (2pi radians) per 10 seconds.
-
-
- `(transform-set objectID centerID frameID [rotate|translate|translate-scaled|scale] x y z)'
- Set objectID's transform to the constructed transform.
- Same syntax as transform.
-
- `(ui-center ID)'
- Set the center for user interface (i.e. mouse) controlled
- motions to object ID.
-
- `ui-emotion-program is an obsolete command.'
- Use its new eqivalent `emodule-define' instead.
-
- `ui-emotion-run is an obsolete command.'
- Use its new eqivalent `emodule_start' instead.
-
- `(ui-freeze [on|off])'
- Toggle updating user interface panels. Off by default.
-
- `(ui-panel PANELNAME {on|off} [ WINDOW ] )'
- Do or don't display the given user-interface panel.
- Case is ignored in panel names. Current PANELNAMEs are:
- geomview main panel
- tools motion controls
- appearance appearance controls
- cameras camera controls
- lighting lighting controls
- obscure obscure controls
- materials material properties controls
- command command entry box
- credits geomview credits
- By default, the `geomview' and `tools' panels appear when
- geomview starts. If the optional Window is supplied, a
- `position' clause (e.g. (ui-panel obscure on { position xmin
- xmax ymin ymax }) sets the panel's default position. (Only
- xmin and ymin values are actually used.) A present but empty
- Window, e.g. `(ui-panel obscure on {})' causes interactive
- positioning.
-
- `(ui-target ID [yes|no])'
-
-
-
- Page 19 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- Set the target of user actions (the selected line of the
- target object browser) to ID. The second argument specifies
- whether to make ID the current object regardless of its type.
- If `no', then ID becomes the current object of its type
- (geom or camera). The default is `yes'. This command may
- result in a change of motion modes based on target choice.
-
- `(uninterest (COMMAND [args]))'
- Undoes the effect of an `interest' command. (COMMAND [args]) must
- be identical to those used in the `interest' command.
-
- `(update [timestep_in_seconds])'
- Apply each incremental motion once. Uses timestep if it's present and
- nonzero; otherwise motions are proportional to elapsed real time.
-
- `(update-draw CAM-ID [timestep_in_seconds])'
- Apply each incremental motion once and then draw CAM-ID.
- Applies `timestep' seconds' worth of motion, or uses elapsed real
- time if `timestep' is absent or zero.
-
- `(window CAM-ID WINDOW)'
- Specify attributes for the window of CAM-ID, e.g. its size
- or initial position, in the OOGL Window syntax.
- The special CAM-ID `default' specifies
- properties of future windows (created by `camera' or
- `new-camera').
-
- `(winenter CAM-ID)'
- Tell geomview that the mouse cursor is in the window
- of CAM-ID. This function is for development purposes
- and is not intended for general use.
-
- `(write {command,geometry,camera,transform,window} FILENAME [ID|(ID ...)] [self|world|universe|otherID])'
- write description of ID in given format to FILENAME. Last
- parameter chooses coordinate system for geometry & transform:
- self: just the object, no transformation or appearance (geometry only)
- world: the object as positioned within the World.
- universe: object's position in universal coordinates;
- includes Worldtransform
- other ID: the object transformed to otherID's coordinate system.
-
- A filename of `-' is a special case: data are written to the
- stream from which the 'write' command was read. For external
- modules, the data are sent to the module's standard input.
- For commands not read from an external program, `-' means
- geomview's standard output. (See also the `command'
- command.)
-
- The ID can either be a single id or a parenthesized list of
- ids, like `g0' or `(g2 g1 dodec.off)'.
-
- `(write-comments FILENAME GEOMID PICKPATH)'
-
-
-
- Page 20 (printed 12/22/98)
-
-
-
-
-
-
- GGGGeeeeoooommmmvvvviiiieeeewwww((((5555))))GGGGeeeeoooommmmeeeettttrrrryyyy CCCCeeeennnntttteeeerrrr ((((TTTThhhhuuuu DDDDeeeecccc 11112222 00002222::::44441111::::22223333 CCCCSSSSTTTT 1111999999996666GGGG))))eeeeoooommmmvvvviiiieeeewwww((((5555))))
-
-
-
- write OOGL COMMENT objects in the GEOMID hierarchy at the
- level of the pick path to FILENAME. Specifically, COMMENTS
- at level (a b c ... f g) will match pick paths of the form
- (a b c ... f *) where * includes any value of g, and also
- any values of possible further indices h,i,j, etc. The pick
- path (returned in the `pick' command) is a list of
- integer counters specifying a subpart of a hierarchical
- OOGL object. Descent into a complex object (LIST or INST)
- adds a new integer to the path. Traversal of simple objects
- increments the counter at the current level.
- Individual COMMENTS are enclosed by curly braces, and the
- entire string of zero, one, or more COMMENTS (written in
- the order in which they are encountered during hierarchy
- traversal) is enclosed by parentheses.
-
- Note that arbitrary data can only be passed through the OOGL
- libraries as full-fledged OOGL COMMENT objects, which can be
- attached to other OOGL objects via the LIST type as described
- above. Ordinary comments in OOGL files (i.e. everything after
- '#' on a line) are ignored at when the file is loaded and
- cannot be returned.
-
- `(write-sexpr FILENAME LISPOBJECT)'
- Writes the given LISPOBJECT to FILENAME. This function is intended
- for internal debugging use only.
-
- `(xform ID TRANSFORM)'
- Concatenate TRANSFORM with the current transform of the object
- (apply TRANSFORM to object ID).
-
- `(xform-incr ID TRANSFORM)'
- Apply continual motion: concatenate TRANSFORM with the current
- transform of the object every refresh (set object ID's
- incremental transform to TRANSFORM).
-
- `(xform-set ID TRANSFORM)'
- Overwrite the current object transform with TRANSFORM (set
- object ID's transform to TRANSFORM).
-
- `(zoom CAM-ID FACTOR)'
- Zoom CAM-ID, multiplying its field of view by FACTOR.
- FACTOR should be a positive number.
-
-
-
- Info file: geomview, -*-Text-*-
- produced by texinfo-format-buffer
- from file: geomview.tex
-
-
-
-
-
-
-
- Page 21 (printed 12/22/98)
-
-
-
-